Nền tảng của RAG
Standard Large Language Models (LLMs) are "frozen" in time, limited by their training data cut-off. They cannot answer questions about your company’s internal handbook or a private video meeting from yesterday. Tạo sinh được tăng cường truy xuất (RAG)đóng vai trò cầu nối bằng cách cung cấp cho mô hình LLM ngữ cảnh liên quan được truy xuất từ dữ liệu riêng tư của chính bạn.
Quy trình nhiều bước
Để làm cho dữ liệu riêng tư trở nên "đọc được" đối với một mô hình LLM, chúng ta tuân theo một quy trình cụ thể:
- Tải dữ liệu:Chuyển đổi các định dạng khác nhau (PDF, Web, YouTube) thành định dạng tài liệu chuẩn.
- Chia nhỏ:Phân chia các tài liệu dài thành các phần nhỏ, dễ quản lý "chunk".
- Chèn vector:Chuyển đổi các đoạn văn bản thành các vector số học (biểu diễn toán học về ý nghĩa).
- Lưu trữ:Lưu trữ các vector này trong kho vector (như Chroma) để tìm kiếm tương tự nhanh như chớp.
Tại sao việc chia nhỏ lại quan trọng
Các mô hình LLM có một "khung ngữ cảnh" (giới hạn về lượng văn bản mà chúng có thể xử lý cùng một lúc). Nếu bạn gửi một tài liệu PDF 100 trang, mô hình sẽ thất bại. Chúng tôi chia dữ liệu thành các khối để đảm bảo chỉ những phần thông tin liên quan nhất được gửi đến mô hình.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Question 1
Why is
chunk_overlap considered a critical parameter when splitting documents for RAG?Challenge: Preserving Context
Apply your knowledge to a real-world scenario.
You are loading a YouTube transcript for a technical lecture. You notice that the search results are confusing "Lecture 1" content with "Lecture 2."
Task
Which splitter would be best for keeping context like "Section Headers" intact?
Solution:
MarkdownHeaderTextSplitter or RecursiveCharacterTextSplitter. These allow you to maintain document structure in the metadata, helping the retrieval system distinguish between different chapters or lectures.